package edu.pe.cayetano.view.action;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.RowSetDynaClass;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import ws.synopsis.frmwrk.common.BResult;

import edu.pe.cayetano.model.bo.CicloBO;
import edu.pe.cayetano.model.bo.PresupuestoDentalBO;
import edu.pe.cayetano.model.bo.SedeBO;
import edu.pe.cayetano.seccd.constantes.ConstantesListas;
import edu.pe.cayetano.seccd.constantes.ConstantesSECCD;
import edu.pe.cayetano.util.EscribeLog;
import edu.pe.cayetano.util.Utilitario;
import edu.pe.cayetano.util.UtilitarioSession;

public class PresupuestoDentalAction extends BaseAction{
	
	private String page=null;

	public ActionForward listar(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
		BResult					ret				= new BResult();
		PresupuestoDentalBO		presupuesto 	= new PresupuestoDentalBO();
		try {
			HttpSession session = request.getSession(false);
			ret = presupuesto.listarPresupuestoDental();
			if(ret.getCode()==0 && ret.getObject()!=null){
				page=ConstantesSECCD.EXITO;
				UtilitarioSession.eliminaParametrosBusquedaGenerico(session);
				UtilitarioSession.seteaParametrosListadoGenerico(session,(RowSetDynaClass)ret.getObject());
			}else{
				page=ConstantesSECCD.ERROR;
				EscribeLog.escribeLog("PresupuestoDentalAction","listar",ConstantesSECCD.ERROR,ret.getMessage());
				mostrarMensaje(request,ConstantesSECCD.ERROR_PRESUPUESTO_LISTAR,new String[0],"home.do","home");
			}
		}catch (Exception e) {
			page=ConstantesSECCD.ERROR;
			EscribeLog.escribeLog("PresupuestoDentalAction","listar",ConstantesSECCD.ERROR,ConstantesSECCD.ERROR_CITA_LISTAR);
			mostrarMensaje(request,ConstantesSECCD.ERROR_PRESUPUESTO_LISTAR,new String[0],"home.do","home");
		}
		return mapping.findForward(page);	
	}
	
	public ActionForward buscaPresupuestoDental(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
		BResult					ret					= new BResult();
		PresupuestoDentalBO		presupuestoBO 		= new PresupuestoDentalBO();
		try {
			HttpSession 		session 	= request.getSession(false);
			DynaBean			dyna		= Utilitario.createDynaBeanFromRequest("dynaBean", request);
			ret = presupuestoBO.buscarPresupuestoDental(dyna);
			if(ret.getCode()==0 && ret.getObject()!=null){
				page=ConstantesSECCD.EXITO;
				UtilitarioSession.seteaParametrosBusquedaGenerico(session,(RowSetDynaClass)ret.getObject(),dyna);
			}else{
				page=ConstantesSECCD.ERROR;
				EscribeLog.escribeLog("PresupuestoDentalAction","buscaPresupuestoDental",ConstantesSECCD.ERROR,ret.getMessage());
				mostrarMensaje(request,ConstantesSECCD.ERROR_PRESUPUESTO_BUSQUEDA,new String[0],"presupuestoDental.do","listar");
			}
		}catch (Exception e) {
			page=ConstantesSECCD.ERROR;
			EscribeLog.escribeLog("PresupuestoDentalAction","buscaPresupuestoDental",ConstantesSECCD.ERROR,ret.getMessage());
			mostrarMensaje(request,ConstantesSECCD.ERROR_PRESUPUESTO_BUSQUEDA,new String[0],"presupuestoDental.do","listar");
		}
		return mapping.findForward(page);	
	}
	
	public ActionForward cargaEditaPresupuestoDental(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
		BResult							retS				= new BResult();
		PresupuestoDentalBO				presBO  = new PresupuestoDentalBO();
		try{
			HttpSession 		session 	= request.getSession(false);
			DynaBean			dyna		= Utilitario.createDynaBeanFromRequest("dynaBean", request);
			retS = presBO.getDetallePresupuesto(dyna);
			if(retS.getCode()==0 && retS.getObject()!=null){
				session.setAttribute(ConstantesListas.LISTA_SEDES, (ArrayList<?>)retS.getObject());
				page=ConstantesSECCD.EXITO;
			}else{
				page=ConstantesSECCD.ERROR;
				EscribeLog.escribeLog("OrdenServicioAction","cargaInsertaOrdenServicio",ConstantesSECCD.ERROR,retS.getMessage());
				mostrarMensaje(request,ConstantesSECCD.ERROR_PRESUPUESTO_CARGAEDITAR,new String[0],"presupuestoDental.do","listar");
			}
		}catch(Exception e) {
			page=ConstantesSECCD.ERROR;
			EscribeLog.escribeLog("OrdenServicioAction","cargaInsertaOrdenServicio",ConstantesSECCD.ERROR,ConstantesSECCD.ERROR_PRESUPUESTO_CARGAINSERTAR);
			mostrarMensaje(request,ConstantesSECCD.ERROR_PRESUPUESTO_CARGAEDITAR,new String[0],"presupuestoDental.do","listar");
		}	
		return mapping.findForward(page);	
	}
}